A suite of abstract domains for static analysis of string values

نویسندگان

  • Giulia Costantini
  • Pietro Ferrara
  • Agostino Cortesi
چکیده

interpretation is a theory to define and soundly approximate the semantics of a program [8, 9], focusing on some runtime properties of interest. Usually, each concrete state is composed by a set of elements (e.g., all the possible computational states), that is approximated by a unique element in the abstract domain. Formally, the concrete domain ℘(D) forms a complete lattice 〈℘(D),⊆, ∅,D,∪,∩〉. On this domain, a concrete semantics S is defined. In the same way, an abstract semantics is defined, and it is aimed to approximate the concrete one in a computable way. Formally, the abstract domain A has to form a complete lattice 〈A,≤A,⊥A,>A,tA,uA〉. The concrete and abstract domains are related by a concretization γA and an abstraction αA functions, and, in order to obtain a sound analysis, these have to form a Galois connection. Formally, 〈℘(D),⊆〉 −−−→ ←−−− αA γA 〈A,≤A〉. One function univocally identifies the other, and in the rest of the paper we will focus on concretization-based Galois connection, and in particular on the following theorem (Proposition 7 of [10]). Theorem 1.1 (Concretization-based Galois connection) Let the concretization function γA : A→ ℘(D) be a complete meet preserving map. Define the abstraction function by αA = λY. uA {z : γA(z) ⊆ Y}. If αA is well-defined then 〈℘(D),⊆〉 −−−→ ←−−− αA γA 〈A,≤A〉. When abstract domains do not satisfy the ascending chain condition, a widening operator ∇A is required in order to guarantee the convergence of the fixed point computation. This is an upper bound operator such that for all increasing chains a0 ≤A . . . an ≤A . . . the increasing chain defined as w0 = a0, . . . ,wi+1 = wi∇Aai+1 converges after a finite number of steps [5]. An abstract semantics S is a sound approximation of the concrete one if ∀a ∈ A : γA(SJaK) ⊇ SJγA(a)K.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Static Analysis of String Values

In this paper we propose a unifying approach for the static analysis of string values based on abstract interpretation, and we present several abstract domains that track different types of information. In this way, the analysis can be tuned at different levels of precision and efficiency, and it can address specific properties.

متن کامل

JSAI: Designing a Sound, Configurable, and Efficient Static Analyzer for JavaScript

We describe JSAI, an abstract interpreter for JavaScript. JSAI uses novel abstract domains to compute a reduced product of type inference, pointer analysis, string analysis, integer and boolean constant propagation, and control-flow analysis. In addition, JSAI allows for analysis control-flow sensitivity (i.e., context-, path-, and heap-sensitivity) to be modularly configured without requiring ...

متن کامل

Combining String Abstract Domains for JavaScript Analysis: An Evaluation

Strings play a central role in JavaScript and similar scripting languages. Owing to dynamic features such as the eval function and dynamic property access, precise string analysis is a prerequisite for automated reasoning about practically any kind of runtime property. Although the literature presents a considerable number of abstract domains for capturing and representing specific aspect of st...

متن کامل

Abstract Parsing: Static Analysis of Dynamically Generated String Output Using LR-Parsing Technology

parsing: static analysis of dynamically generated string output using LR-parsing technology Kyung-Goo Doh , Hyunha Kim, and David A. Schmidt ⋆⋆ 1 Hanyang University, Ansan, South Korea 2 Kansas State University, Manhattan, Kansas, USA Abstract. We combine LR(k)-parsing technology and data-flow analysis to analyze, in advance of execution, the documents generated dynamically by a program. Based ...

متن کامل

Quantifying the Precision of Numerical Abstract Domains

In the context of the Abstract Interpretation framework, initiated by Cousot and Cousot to model program static analyses, numerous numerical abstract domains have been proposed. Their number is due to both the intended usage of the domains (properties to prove) and the trade-off between precision and computation efficiency. In this paper, we propose a way to quantify the precision of abstract v...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:
  • Softw., Pract. Exper.

دوره 45  شماره 

صفحات  -

تاریخ انتشار 2015